//
//  NotificationViewController.swift
//  localNotification
//
//  Created by wsj on 17/8/9.
//  Copyright © 2017年 wsj. All rights reserved.
//

import UIKit
import UserNotifications
import UserNotificationsUI
import SwiftGifOrigin
/**
    注意：
        0.info表示是notificationCenter 里面的info
        1.如果想让界面调用自定义的界面，就必须给通知添加category，并且在info里面UNNotificationExtensionCategory设置category对应的identifier
        2.当点击通知的时候才可以调用你自定义的界面
        3.当看到设置的内容和自定义设置的内容重复的时候，我们在info里面设置UNNotificationExtensionDefaultContentHidden 设置为隐藏，不显示系统的
        4.当开始尺寸比较大的时候，即使我们设置了尺寸，也会有一定的时间显示出来尺寸不符合的情况，我们在info里面设置缩放UNNotificationExtensionInitialContentSizeRatio 设置相对应的比例即可
        5.我们可以自定义界面，但是不能在界面上面处理逻辑或者事件
 */
class NotificationViewController: UIViewController, UNNotificationContentExtension {

    @IBOutlet var label: UILabel?
    
    @IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    /// 可以获取点击的按钮或者通知
    func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
        
        if response.actionIdentifier == "action.like" {
            print("点击喜欢按钮");
           completion(.dismissAndForwardAction);
        } else if response.actionIdentifier == "action.cancel"{
            print("返回");
            completion(.dismiss);
        }else if response.actionIdentifier == "action.confirm"{
            print("确认");
            completion(.doNotDismiss);
        }
        /// 点击完成要通知App点击了 doNotDismiss 点击了，不退出通知界面.dismiss表示退出通知界面.dismissAndForwardAction关闭通知界面，通知主App处理
    }
    
    func didReceive(_ notification: UNNotification) {
        let content = notification.request.content;
        self.label?.text = content.title
        let attarch = content.attachments.first;
        if (attarch?.url.startAccessingSecurityScopedResource())! {
            // Validate data
            let imageData = try? Data(contentsOf: (attarch?.url)!)
            if let data = imageData {
                imageView.image = UIImage.gif(data: data);
            }
        }
    }

}
